package com.appfahrt.persistence.obj2.dbo.generated;

import java.util.ArrayList;
import com.appfahrt.persistence.obj2.AbstractDatabaseObject;
import com.appfahrt.persistence.obj2.dao.generated.FahrtteilnehmerGeneratedDao;


/**
 * This Class is automatically generated.<br><br>
 *
 * <u><b>${schema}.fahrtteilnehmer</b></u><br><br>
 * 
 * <u><b>Table Definition:</b></u>
 * <table> 
 *   <tr> <th>Column-Name</th> <th>Data-Type</th> <th>Data-Length</th> <th>Nullable</th> <th>Description</th> </tr> 
 *   <tr> <td>ID </td> <td>INTEGER</td> <td>-1</td> <td>false</td> <td>-</td> 
 *   <tr> <td>fk_id_profil_teilnehmer </td> <td>integer</td> <td>-1</td> <td>false</td> <td>-</td> 
 *   <tr> <td>fk_id_fahrten </td> <td>integer</td> <td>-1</td> <td>false</td> <td>-</td> 
 *   <tr> <td>bewertung_durch_fahrer </td> <td>boolean</td> <td>-1</td> <td>false</td> <td>-</td> 
 *   <tr> <td>bewertet_durch_teilnehmer </td> <td>boolean</td> <td>-1</td> <td>false</td> <td>-</td> 
 * </table>
 * <br><br>
 * <u><b>References:</b></u> <br>
 *
 * <br><br>
 * <u><b>Indexes:</b></u> <br>
 *
 * <br><b>DON'T MODIFY THIS FILE</b><br><br>
 *
 * Generated: Sun May 22 22:20:18 CEST 2011
 */
public abstract class FahrtteilnehmerGeneratedDbo extends AbstractDatabaseObject {
	
	public static final String TABLE = "fahrtteilnehmer";
	
	public static final String SCHEMA = "$schema";

	protected ArrayList<String> changedFieldList = new ArrayList<String>();
	
	private boolean loadFromDb = false;

	// Database Column-Definition
	public static final String ID = "ID"; 
	public static final String fk_id_profil_teilnehmer = "fk_id_profil_teilnehmer"; 
	public static final String fk_id_fahrten = "fk_id_fahrten"; 
	public static final String bewertung_durch_fahrer = "bewertung_durch_fahrer"; 
	public static final String bewertet_durch_teilnehmer = "bewertet_durch_teilnehmer"; 
	public final static String[] COLUMNS = {  ID , fk_id_profil_teilnehmer , fk_id_fahrten , bewertung_durch_fahrer , bewertet_durch_teilnehmer  };

	// Members
			private Long Id = null;
				private Long FkIdProfilTeilnehmer = null;
				private Long FkIdFahrten = null;
				private boolean BewertungDurchFahrer = false;
				private boolean BewertetDurchTeilnehmer = false;
	
	/** Value-Holder for the references **/
	private References references = new References();
	
	/**
	 * Value-Holder for the references.
	 */
	public class References {


	}

	/**
	 * Constructor.
	 */
	public FahrtteilnehmerGeneratedDbo() {
	
	}
	
	
	/**
	 * Returns the references.
	 */
	public References getReferences() {
		return this.references;
	}
	
	/**
	 * Setter for <b>ID</b>  <br>
	 * Type: INTEGER <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public void setId(Long Id) {
				if (!(Id == null && this.Id == null) && !this.changedFieldList.contains("ID")) {
			this.changedFieldList.add("ID");
		}
		this.Id = Id ;
			}
	
	/**
	 * Getter for <b>ID</b>  <br>
	 * Type: INTEGER <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public Long getId () {
		return this.Id;
	}
	
	/**
	 * Equals-Method for <b>ID</b>  <br>
	 * Type: INTEGER <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean equalsId(Long Id) {
		boolean result = false;
				if (getId () != null
			&& getId ().equals( Id )) {
			result = true;
		}
				return result;
	} 
	/**
	 * Setter for <b>fk_id_profil_teilnehmer</b>  <br>
	 * Type: integer <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public void setFkIdProfilTeilnehmer(Long FkIdProfilTeilnehmer) {
				if (!(FkIdProfilTeilnehmer == null && this.FkIdProfilTeilnehmer == null) && !this.changedFieldList.contains("fk_id_profil_teilnehmer")) {
			this.changedFieldList.add("fk_id_profil_teilnehmer");
		}
		this.FkIdProfilTeilnehmer = FkIdProfilTeilnehmer ;
			}
	
	/**
	 * Getter for <b>fk_id_profil_teilnehmer</b>  <br>
	 * Type: integer <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public Long getFkIdProfilTeilnehmer () {
		return this.FkIdProfilTeilnehmer;
	}
	
	/**
	 * Equals-Method for <b>fk_id_profil_teilnehmer</b>  <br>
	 * Type: integer <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean equalsFkIdProfilTeilnehmer(Long FkIdProfilTeilnehmer) {
		boolean result = false;
				if (getFkIdProfilTeilnehmer () != null
			&& getFkIdProfilTeilnehmer ().equals( FkIdProfilTeilnehmer )) {
			result = true;
		}
				return result;
	} 
	/**
	 * Setter for <b>fk_id_fahrten</b>  <br>
	 * Type: integer <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public void setFkIdFahrten(Long FkIdFahrten) {
				if (!(FkIdFahrten == null && this.FkIdFahrten == null) && !this.changedFieldList.contains("fk_id_fahrten")) {
			this.changedFieldList.add("fk_id_fahrten");
		}
		this.FkIdFahrten = FkIdFahrten ;
			}
	
	/**
	 * Getter for <b>fk_id_fahrten</b>  <br>
	 * Type: integer <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public Long getFkIdFahrten () {
		return this.FkIdFahrten;
	}
	
	/**
	 * Equals-Method for <b>fk_id_fahrten</b>  <br>
	 * Type: integer <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean equalsFkIdFahrten(Long FkIdFahrten) {
		boolean result = false;
				if (getFkIdFahrten () != null
			&& getFkIdFahrten ().equals( FkIdFahrten )) {
			result = true;
		}
				return result;
	} 
	/**
	 * Setter for <b>bewertung_durch_fahrer</b>  <br>
	 * Type: boolean <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public void setBewertungDurchFahrer(boolean BewertungDurchFahrer) {
				this.BewertungDurchFahrer = BewertungDurchFahrer ;
			}
	
	/**
	 * Getter for <b>bewertung_durch_fahrer</b>  <br>
	 * Type: boolean <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean getBewertungDurchFahrer () {
		return this.BewertungDurchFahrer;
	}
	
	/**
	 * Equals-Method for <b>bewertung_durch_fahrer</b>  <br>
	 * Type: boolean <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean equalsBewertungDurchFahrer(boolean BewertungDurchFahrer) {
		boolean result = false;
				result = getBewertungDurchFahrer ()==BewertungDurchFahrer;
				return result;
	} 
	/**
	 * Setter for <b>bewertet_durch_teilnehmer</b>  <br>
	 * Type: boolean <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public void setBewertetDurchTeilnehmer(boolean BewertetDurchTeilnehmer) {
				this.BewertetDurchTeilnehmer = BewertetDurchTeilnehmer ;
			}
	
	/**
	 * Getter for <b>bewertet_durch_teilnehmer</b>  <br>
	 * Type: boolean <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean getBewertetDurchTeilnehmer () {
		return this.BewertetDurchTeilnehmer;
	}
	
	/**
	 * Equals-Method for <b>bewertet_durch_teilnehmer</b>  <br>
	 * Type: boolean <br>
	 * Length: -1 <br>
	 * Nullable: false <br>
	 * Comment: - <br>
	 */
	public boolean equalsBewertetDurchTeilnehmer(boolean BewertetDurchTeilnehmer) {
		boolean result = false;
				result = getBewertetDurchTeilnehmer ()==BewertetDurchTeilnehmer;
				return result;
	} 

	/**
	 * Returns a short String with the values.
	 */
	public String toInfoShortString() {
		return  "[ID=" + this.Id+"]" +"-[fk_id_profil_teilnehmer="+this.FkIdProfilTeilnehmer + "]" +"-[fk_id_fahrten="+this.FkIdFahrten + "]" +"-[bewertung_durch_fahrer="+this.BewertungDurchFahrer + "]" +"-[bewertet_durch_teilnehmer="+this.BewertetDurchTeilnehmer + "]" ;
	}
	
	/**
	 * Returns a Comma-Separated Values (CSV) String. <br>
	 * Separator: ;
	 */
	public String toCsvString() {
		return toCsvString(";");
	}
	
	/**
	 * Returns a Comma-Separated Values (CSV) String
	 * with the given separator.
	 */
	public String toCsvString(String separator) {
		return  this.Id+separator+this.FkIdProfilTeilnehmer+separator+this.FkIdFahrten+separator+this.BewertungDurchFahrer+separator+this.BewertetDurchTeilnehmer;
	}
	
	/**
	 * Indicates whether the object has 
	 * changed or not.
	 */
	public boolean hasChanged() {
		return this.changedFieldList.size() > 0;
	}
	
	/**
	 * Changes Fields.
	 */
	public ArrayList<String> getChangedFieldList() {
		return this.changedFieldList;
	}
	
	/**
	 * Indicates, whether the object is new 
	 * or exists in the database.
	 */ 
	public boolean isNew() {
		return !loadFromDb;
	}
	
	/**
	 * Returns the name of the corresponding database table.
	 */
	public String getTable() {
		return TABLE;
	}
	
	/**
	 * Returns the name of the corresponding database schema.
	 */
	public String getSchema() {
		return SCHEMA;
	}
}